The present invention pertains generally to computer systems and networks having two or more host computers and at least one shared data storage device. More particularly, the invention pertains to a system, structure and procedure for controlling access to shared storage in computer systems and networks having a plurality of host computers that may create data integrity issues for the shared data storage, particularly in a Storage Area Network (SAN).
It is known in the prior art to to provide some degree of host computer data storage access management in a SAN (SAN management) within devices in a fabric, as disclosed in co-pending application Ser. No. 09/394,220 filed on Sep. 13, 1999, which is hereby incorporated by reference. However, such prior art SAN management techniques are problematic because they require at least a subset of the disk array controllers in a SAN to perform complex and time consuming techniques to provide such management.
SANs typically include many host computers (computers) and storage peripherals, wherein each storage peripheral is managed by a respective disk array controller. There may be hundreds of storage volumes, or logical units within each storage peripheral. To manage computer access to storage volumes in a storage peripheral, a disk array controller typically maintains a map that identifies each respective computer""s access privileges to each logical unit in the disk array controller""s corresponding storage peripheral. Every time that a computer is added or removed from the SAN, each disk array controller to which the computer is connected is required to modify its mapping to respectively either add or remove the computer and its associated LU access to/from the map. Desirably, such complex map maintenance in a disk array controller would be reduced, thereby enabling each disk array controller in a SAN to maintain reasonable data throughput.
Although prior art systems provide a Fibre Channel (FC) switch to manage computer access to disk array controllers, such prior art systems do not provide a solution to the problem described above. This is because prior art FC switch management does not manage a computer""s access to respective logical units (LUs) within a storage peripheral, but rather only typically manages a computer""s access to a storage peripheral. This means that a disk array controller must still typically perform the complex management procedures discussed above.
What is needed is a system and method to enhance SAN storage management by offloading the substantial amount of the processing that is generally required of a disk array controller to manage computer access to logical units within its respective storage peripheral.
One aspect of the present invention provides a procedure whereby a controller manages computer access to a number of storage volumes in a storage peripheral. To accomplish this, a system administrator assigns a plurality of port IDs to a disk array controller, the disk array controller being responsive to requests from a computer using any of the plurality of port IDs. Next, the system administrator configures a data structure in a memory of the controller such that at least a subset of the plurality of port IDs are mapped to particular ones of the number of storage volumes. Next, in response to an access request by a computer, wherein the access request specifies a target port ID, the controller grants the computer access to only those storage volumes whose mapped port ID corresponds to the target ID.
Another aspect of the invention is a storage area network that includes a plurality of computers connected to a disk array controller that is in turn connected to a number of storage volumes that are shared by the plurality of computers. Each of the plurality of computers having a respective locally assigned port ID of a plurality of port IDs. The controller including a data structure defined in a memory that includes a port ID to storage volume mapping table that maps at least a subset of the plurality of port IDs to particular ones of plurality of storage volumes. The mapping table being used by the controller to grant a computer of the plurality of computers access to particular ones of the plurality of storage volumes based on the computer""s local port ID.
In yet another aspect, a controller includes a port that is responsive to a plurality of port IDs. The controller also includes a memory, wherein is stored a port ID to storage volume mapping table. The mapping table associating particular ones of the plurality of port IDs to respective storage volumes of a plurality of storage volumes. The mapping table being used by the controller to grant a computer access to particular ones of the plurality of storage volumes in response to receiving an I/O request from the computer that includes a locally assigned port ID. The access being based on the particular ones of the plurality of storage volumes that are mapped to a respective port ID of the particular ones of the plurality of ports IDs that is associated with the computer""s local port ID.